排序
一、排序算法
排序是计算机内经常进行的一个操作,其目的是将一组“无序”的序列调整为有序的序列。
程序:数据结构+算法
常见八大排序算法
冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、基数排序、Shell排序.
二、冒泡排序
冒泡排序是一种简单的基本的排序算法。
算法原理: [9,8,7,5,6,4,3,2,1]
- 比较相邻的两个元素,如果第一个比第二个大,则交换它们两个
- 对每一对相邻的元素要做相同的工作,从开始的第一对直到最后一对,最后的元素就会是最大的数
- 针对所有的元素重复以上的步骤,除了最后一个
依次比较相邻的两个数,将小数放前面,大数放后面
1 | import random |
三、选择排序
- 原理:每一趟从待排序的序列中选出最大或最小的一个元素,顺序放在已排好序的最后。
- [49, 38, 65, 97, 76, 13, 27, 49]
[49, 38, 65, 97, 76, 13, 27, 49] - > [13, 38, 65, 97, 76,49, 27, 49]-> [13, 27, 65, 97, 76,49, 38, 49]
1 | import random |
四、插入排序
- 思想:现在已经有一个有序的序列了,要求在这个已经的数据序列中,再插入一个数
- 插入排序是将序列分为两部分,最开始的时候第一个数就是一个有序部分,剩下的部分为无序部分,每次取无序部分中的第一个数和无序部分进行比较,放入到有序部分中的合适的位置
- [65,27,59,64,58]
[65] [27,59,64,58]
[65] [27,59,64,58]
->[27,65] [59,64,58]
->[27,65] [64,58]
1 | import random |